﻿<?php

	/**
	 * 
	 */
	class LoginView {

		const NO_MESSAGE = 0;		
		const USER_IS_LOGGED_IN = 1;
		const LOG_IN = 2;
		const LOGIN_FAILED = 3;
		
		private static $form_username = "form_username";
		private static $form_password = "form_password";
		private static $login_button = "login_button";
		private static $logout_button = "logout_button";
		private static $remember_check = "remember_check";
		private static $cookieuser = "c_username";		
		private static $cookiepass = "c_password";
		private static $want_to_register = "want_to_register";
		private static $delete_user = "delete_user";		
		public static $new_user = "new_user";

		
		//Returnerar HTML-kod för ett login-formulär.
		public function DoLoginBox() {
								
			return "<div id='loginform'>
			<p>Användarnamn: </p><input type='text' name=".self::$form_username." />
			<p>Lösenord: </p><input type='password' name=".self::$form_password." /><br>
			Kom ihåg mig <input type='checkbox' id='check' name=".self::$remember_check." />
			<button type='submit' name=".self::$login_button.">Logga in</button>
			</div>";
		}
		
		//Returnerar HTML-kod för en logout-knapp.
		public function DoLogoutBox() {
			return "<div id='logoutdiv'>
			<button type='submit' name=".self::$logout_button.">Logga ut</button>			 
			<button type='submit' name=".self::$delete_user.">Ta bort användaren</button>
			</div>";
		
		}
		
		/*Funktion som laddor om sidan
		public function ReloadPage($url){
			header("Location: $url");
		}*/
		
		//Returnerar HTML-kod för en meddelandebox. Tar in parametrarna vilket meddelande som ska visas.
		public function DoMessageBox($message){
			
			$output_message = "";
			$class = "";
			
			switch ($message){
				
				case 0:
					break;
				case 1:
					$output_message = $_SESSION[LoginHandler::$user] ." är inloggad.";
					$class = "green";
					break;
				case 2:
					$output_message = "Logga in eller registrera <a href='?".self::$new_user."=true'>ny användare</a>";
					break;
				case 3:
					$output_message = "Inloggning misslyckades";
					$class="red";
					break;																
				
			}
			return "<div id='messagediv'><p class='$class'>$output_message</p></div>";	
		}
		
		//Returnerar det användarnamn som användaren har angett.
		public function GetUserName(){
			if ($this->TriedToLogin()){
				if ($_POST[self::$form_username] == null){
					return "null";
				}
				return $_POST[self::$form_username];
			}		
		}
		
		//Returnerar det lösenord som användaren har angett.
		public function GetPassword(){
			if ($this->TriedToLogin()){
				if ($_POST[self::$form_password] == null){
					return null;
				}
				return $_POST[self::$form_password];
			}
		}
		
		//Funktion som kontrollerar om användaren tryckt på login-knappen.
		public function TriedToLogin(){
			return isset($_POST[self::$login_button]);
		}
		
		//Funktion som kontrollerar om användaren tryckt på logout-knappen.
		public function TriedToLogout(){
			return isset($_POST[self::$logout_button]);
		}

		//Funktion som kontrollerar om användaren tryckt på tabort-knappen.
		public function TriedToDelete(){
			return isset($_POST[self::$delete_user]);
		}				
		
		//Funktion som kontrollerar om "kom-ihåg-mig" checkboxen är ikryssad.
		public function TriedToRemember(){
			return isset($_POST[self::$remember_check]);
		}
		
		//Funktion som sätter cookie
		public function SetCookie(){
			setcookie(self::$cookieuser,$this->GetUserName(),time() + (86400 * 7));
			setcookie(self::$cookiepass,$this->GetPassword(), time() + (86400 * 7));	
		}
		
		//Hämtar information om cookien innehåller användarnamn
		public function GetCookieUser(){			
			if(isset($_COOKIE[self::$cookieuser])){
				return $cookie_username = $_COOKIE[self::$cookieuser];
			}
		}
		
		//Hämtar information om cookien innehåller lösen
		public function GetCookiePw(){	
			if(isset($_COOKIE[self::$cookiepass])){
				return $cookie_password = $_COOKIE[self::$cookiepass];
			}
		}							
		
		//Förstör cookien	
		public function UnsetCookie(){
			if(isset($_COOKIE[self::$cookieuser])){
				setcookie(self::$cookieuser,"",time() - 3600);

			}	
			if(isset($_COOKIE[self::$cookiepass])){
				setcookie(self::$cookiepass,"", time() - 3600);	

			}		
			
		}

	}

?>